Routing content in a dual-display computing device

ABSTRACT

In some implementations a computing device may comprise at least a first display device and a second display device. The computing device may receive a selection to display protected content. The computing device may determine a display mode associated with the first display device and the second display device. The computing device may determine an orientation (e.g., landscape or portrait) and modify (e.g., by rotating) the content based on the orientation to create modified content. The computing device may determine a routing of the modified content and route the modified content to at least one of the first display device or the second display device.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present patent application is a continuation of U.S. patentapplication Ser. No. 15/334,503 filed on Oct. 26, 2016 entitled “RoutingContent in a Dual-Display Computing Device” and is incorporated byreference herein in its entirety and for all purposes as if completelyand fully set forth herein.

BACKGROUND OF THE INVENTION

Field of the Invention

This invention relates generally to dual-display devices and, moreparticularly, to using a crossbar switch to select one of multipledual-display modes.

Description of the Related Art

As the value and use of information continues to increase, individualsand businesses seek additional ways to process and store information.One option available to users is information handling systems. Aninformation handling system generally processes, compiles, stores,and/or communicates information or data for business, personal, or otherpurposes thereby allowing users to take advantage of the value of theinformation. Because technology and information handling needs andrequirements vary between different users or applications, informationhandling systems may also vary regarding what information is handled,how the information is handled, how much information is processed,stored, or communicated, and how quickly and efficiently the informationmay be processed, stored, or communicated. The variations in informationhandling systems allow for information handling systems to be general orconfigured for a specific user or specific use such as financialtransaction processing, airline reservations, enterprise data storage,or global communications. In addition, information handling systems mayinclude a variety of hardware and software components that may beconfigured to process, store, and communicate information and mayinclude one or more computer systems, data storage systems, andnetworking systems.

All-in-one computing devices are computing devices that include both agraphics-processing unit (GPU) and a display device. Tablets and laptopsare typically all-in-one devices, and some desktop devices are designedas all-in-one devices. The GPU may be part of a central processing unit(CPU) or may be a separate device from the CPU. Current graphicsprocessing units (GPUs) and operating systems (OS) (e.g., Microsoft®Windows®) are pre-configured to drive a single, internal display deviceusing an embedded DisplayPort (eDP) port. For this reason, contentdisplayed on the internal display device is automatically rotated whilecontent displayed on an additional display device (e.g., considered bythe GPU and operating system as an external display device) is notautomatically rotated. The eDP port is designed to (a) output mediacontent without digital rights management (DRM) (e.g., High-bandwidthDigital Content Protection (HDCP)) when outputting protected content toan embedded display (e.g., an internal display) and (b) encrypt contentusing DRM (e.g., HDCP) before outputting to the additional display.

However, the presumption by the GPU and OS that the computing device hasa single internal display device can cause problems when an all-in-onecomputing device has two (or more) display devices which are bothinternal to (e.g., incorporated into) the computing device. For example,if a computing device includes two display devices, an eDP port maydrive the first display (internal display) device while a DisplayPort(DP) port may drive a second display (additional or external display)device. In this example, protected content may be displayed on the firstdisplay device but not on the second display device because the seconddisplay device does not have the circuitry to decrypt encrypted (e.g.,HDCP) content, even though the second display device is an embeddeddisplay device that does not expect to receive encrypted content.Therefore, an all-in-one computing device that has two (or more) displaydevices may have problems (1) playing DRM protected media content and(2) changing the orientation of content being sent to each of thedisplay devices.

SUMMARY OF THE INVENTION

This Summary provides a simplified form of concepts that are furtherdescribed below in the Detailed Description. This Summary is notintended to identify key or essential features and should therefore notbe used for determining or limiting the scope of the claimed subjectmatter.

In some implementations a computing device may comprise at least a firstdisplay device and a second display device. The computing device mayreceive a selection to display protected content. The computing devicemay determine a display mode associated with the first display deviceand the second display device. The computing device may determine anorientation (e.g., landscape or portrait) and modify (e.g., rotatebetween approximately 0 degrees to approximately 360 degrees) thecontent based on the orientation to create modified content. Thecomputing device may determine a routing of the modified content androute the modified content to at least one of the first display deviceor the second display device.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present disclosure may be obtainedby reference to the following Detailed Description when taken inconjunction with the accompanying Drawings. In the FIGS., the left-mostdigit(s) of a reference number identifies the FIG. in which thereference number first appears. The same reference numbers in differentFIGS. indicate similar or identical items.

FIG. 1 is a block diagram of an architecture of a computing device thatincludes a crossbar switch according to some embodiments.

FIG. 2 is a block diagram illustrating different orientations of adual-screen device according to some embodiments.

FIG. 3 is a block diagram illustrating modes of a dual-screen device ina vertical orientation according to some embodiments.

FIG. 4 is a block diagram illustrating modes of a dual-screen device ina horizontal orientation according to some embodiments.

FIG. 5 is a block diagram illustrating a dual-screen device in which theoperating system is in a clone mode according to some embodiments.

FIG. 6 is a block diagram illustrating a dual-screen device in which theoperating system is in a single display mode according to someembodiments.

FIG. 7 is a block diagram illustrating a dual-screen device in which theoperating system is in an extended display mode according to someembodiments.

FIG. 8 is a flowchart of a process that includes determining a displaymode according to some embodiments.

FIG. 9 is a flowchart of a process that includes determining whethervideo content is protected with a digital rights management (DRM) schemeaccording to some embodiments.

FIG. 10 illustrates an example configuration of a computing device thatcan be used to implement the systems and techniques described herein.

DETAILED DESCRIPTION

For purposes of this disclosure, an information handling system mayinclude any instrumentality or aggregate of instrumentalities operableto compute, calculate, determine, classify, process, transmit, receive,retrieve, originate, switch, store, display, communicate, manifest,detect, record, reproduce, handle, or utilize any form of information,intelligence, or data for business, scientific, control, or otherpurposes. For example, an information handling system may be a personalcomputer (e.g., desktop or laptop), tablet computer, mobile device(e.g., personal digital assistant (PDA) or smart phone), server (e.g.,blade server or rack server), a network storage device, or any othersuitable device and may vary in size, shape, performance, functionality,and price. The information handling system may include random accessmemory (RAM), one or more processing resources such as a centralprocessing unit (CPU) or hardware or software control logic, ROM, and/orother types of nonvolatile memory. Additional components of theinformation handling system may include one or more disk drives, one ormore network ports for communicating with external devices as well asvarious input and output (I/O) devices, such as a keyboard, a mouse,touchscreen and/or video display. The information handling system mayalso include one or more buses operable to transmit communicationsbetween the various hardware components.

The systems and techniques described herein use a crossbar switch toenable the output from either an embedded DisplayPort (eDP) port and oneor more DisplayPort (DP) port to be routed to two or more displaydevices. While the examples herein use a computing device with twodisplay devices, the systems and techniques may also be extrapolated foruse with computing devices having more than two display device. Thecrossbar switch may be used to route the content from an eDP port and aDP port to (1) a first (e.g., internal) display, (2) a second (e.g.,additional) display or (3) both the first display and the second displayof an all-in-one computing device that includes two display devices. Forexample, data from sensors, such as an accelerometer, a gyroscope, amagnetometer or a magnetic compass, a proximity sensor, a camera, orother types of sensors included in the computing device may be providedto a graphic processing unit (GPU). The GPU may adjust the orientation(e.g., landscape or portrait) and position (e.g., top/bottom orleft/right) of the content being sent to the two displays based on thedata. Without the crossbar switch, a user of the computing device wouldbe tasked with (i) knowing which display device the computing deviceconsidered to be the internal (e.g., primary or embedded) display deviceand (ii) manually orienting the displays accordingly. By using thecrossbar switch, as the orientation and position of the first displayand the second display changes, the computing device is able toautomatically re-route the content being displayed based on theorientation.

In a computing device with two display devices, the crossbar switch maybe used to select one of four possible routings: (1) normal, (2) swap,(3) eDP only, or (4) DP only. The normal routing sends the output of theeDP port to the internal display device and sends the output of the DPport to the additional display device (e.g., considered an externaldisplay device by the GPU and OS). The swap routing sends the output ofthe DP port to the internal display device and sends the output of theeDP port to the additional display device. The eDP only routing sendsthe eDP port output to both display devices. The DP only routing sendsthe DP port output to both display devices.

When protected content is output from the eDP port, the protectedcontent is output in an unencrypted format (e.g., without anyprotection) because the output of the eDP port is intended for aninternal display device. The output of the eDP port can be displayed infull high definition (FHD) resolution (at least 1280×720 pixels) on theinternal display. If the protected content is output from the DP port,the DP port is designed to assume that the output is being sent to anexternal display that supports DRM (e.g., HDCP). Therefore, DRMprotected content is output from the DP port in an encrypted format,such as encrypted using HDCP. If the additional display device connectedto the DP port does not support HDCP, as is the case in an all-in-onecomputing device with two display devices, then the protected contentmay not display in FHD mode. Instead, the encrypted content (i) may bedisplayed in standard definition (e.g., a resolution of less than1280×720 pixels) or (ii) may not be displayed. The crossbar switchenables the unencrypted content that is output from the eDP port to berouted to the additional display device (instead of to the internaldisplay device) based on the orientation and position of each of the twodisplay devices. The crossbar switch thus enables a user (i) to use acomputing device that includes two display devices in any orientationand (ii) to display protected content in FHD without having payingattention to which display device is the “primary” (e.g., internal)display device and which is the “secondary” (e.g., additional) displaydevice.

Thus, a portable all-in-one computing device may include two displaydevices. An embedded controller may receive data from one or moresensors in the computing device and determine an orientation andposition of at least one of the display devices. The embedded controllermay modify content being sent to one or both of the display devices. Insome cases, the content may be protected using a DRM scheme, such asHDCP. The content may be modified by rotating the content betweenapproximately 0 degrees and approximately 360 degrees. For example, insome cases, the content may be rotated to the right or to the left andby 90 degrees, 180 degrees, or 270 degrees. The embedded controller mayroute the content being sent to one or both of the display devices basedon the data received from the sensors and based on whether theadditional display is configured as an extension or a clone of theinternal display. In this way, a user can pick up the computing deviceand use it in different configurations and the embedded controllerautomatically (e.g., without human interaction) modifies and routes thecontent to one or both of the displays.

FIG. 1 is a block diagram of an architecture 100 of a computing devicethat includes a crossbar switch according to some embodiments. Thecomputing device 102 includes a graphics processing unit 104. Thegraphics processing unit 104 may be an independent device (e.g.,integrated circuit) or may be part of a central processing unit 106. TheGPU 104 may provide three video data outputs (e.g., three pipes). Forexample, a third video data output of the GPU 104 may be sent to a port108. The port 108 may be used to connect an external display device tothe computing device 102. In some implementations, the third video dataoutput of the GPU 104 may be sent to a third display device of thecomputing device 102 (e.g., instead of to the port 108). The GPU 104 mayprovide a second video data output from an embedded DisplayPort (eDP)port 110. The GPU 104 may provide a third video data output from aDisplayPort (DP) port 112. First content 140(1) from the eDP 110 andsecond content 140(2) from the DP 112 may be sent to a crossbar switch114. The crossbar switch 114 may be capable of routing the content 140from the eDP 110 and the output from the DP 112 to either (or both)output 116(1) or output 116(2). The outputs 116 from the crossbar switch114 may be sent to a DP-to-DSI converter 118. The DP-to-DSI converter118 may convert a DisplayPort compliant signal into a display serialinterface (DSI) compliant signal. For example, the DP-to-DSI 118(1) mayprovide two DSI lanes DSI0 120(1) and DSI1 122(1) to an internal displaydevice 124(1). The internal display device 124(1) is a display devicethat is typically (e.g., in a computing device with a single display)connected to the eDP port 110. The DP-to-DSI 118(2) may receive theoutput 116(2) from the crossbar switch 114 and provide two DSI lanesDSI0 120(2) and DSI1 122(2) to the additional display device 124(2).

A controller 126 (e.g., an embedded controller) may receive data 136(1)to data 136(N) (where N>0) from one or more of (i) a device driver 130(e.g., associated with GPU 104), (ii) an operating system 132 of thecomputing device 102, (iii) one or more sensors 134 associated with thecomputing device 102, or (iv) user input 142 provided by a user of thecomputing device 102. For example, the sensors 134 may include anaccelerometer, a gyroscope, a magnetometer or a magnetic compass, aproximity sensor, a camera, another type of sensor, or any combinationthereof. A user of the computing device 102 may provide the user input142. In some cases, the user input 142 may override the data from one ormore of the device driver 130, the operating system 132, or the sensors134. For example, the controller 126 may use the data from one or moreof the device driver 130, the operating system 132, or the sensors 134to determine a particular routing and instruct the crossbar switch 114to configure a particular routing. In some cases, the user may overridethe particular routing by providing the user input 142.

The computing device 102 may include a memory 138. The memory 138 may beused to store content, such as the first content 140(1) and the secondcontent 140(2). At least one of the first content 140(1) or the secondcontent 140(2) may include unprotected content or protected content(e.g., content protected using a DRM scheme).

The controller 126 may, based on the data 136, provide an instruction128 to the crossbar switch 114 to select a routing that routes one ormore of the first content 140(1) (from the eDP port 110) or the secondcontent 140(2) (from the DP port 112) to one or more of the outputs116(1) or 116(2). For example, the crossbar switch 114 may route thefirst content 140(1) from the eDP port 110 to the output 116(1) fordisplay on the internal display device 124(1) and may route the secondcontent 140(2) from the DP port 112 to the output 116(2) for display onthe additional display device 124(2). As a second example, the crossbarswitch 114 may route the first content 140(1) from the eDP port 110 tothe output 116(2) for display on the additional display device 124(2)and may route the second content 140(2) from the DP port 112 to theoutput 116(1) for display on the internal display device 124(2). As athird example, the crossbar switch 114 may route the first content140(1) from the eDP port 110 to both the output 116(1) and 116(2) fordisplay on the internal display device 124(1) and the additional displaydevice 124(2). As a fourth example, the crossbar switch 114 may routethe second content 140(2) from the DP port 112 to both the output 116(1)and the output 116(2) for display on the internal display device 124(1)and the additional display device 124(2).

The controller 126 may determine which routing of the crossbar switch114 to select based on (1) an orientation of the computing device 102,(2) a display mode 144 of the operating system 132, and (3) whetherDRM-protected content is being displayed. The orientation of thecomputing device 102 may be determined based on which of the displaydevices 124(1) or 124(2) is “up” (when the computing device 102 is in ahorizontal orientation) or which of the display devices 124(1) or 124(2)is “left” (when the computing device 102 is in a vertical orientation).For example, the operating system 132, such as Microsoft® Windows®, mayprovide three display modes 144: (a) extended desktop mode where thedisplay devices 124(1) and 124(2) behave as if they were a singledisplay device, (b) clone mode where each of the display devices 124(1)and 124(2) display the same content, or (c) single display mode, e.g.,one of the display devices 124(1) or 124(2) is off and therefore notdisplaying any content. For example, single display mode may be usedwhen the computing device is in a tablet orientation to turn off aparticular display device (of the display devices 124(1) and 124(2))that is not visible to (or facing) the user.

The operating system (OS) 132 may allow DRM protected content to bedisplayed on a single display device (e.g., either 124(1) or 124(2)) andprevent DRM protected content from being displayed across both of thedisplays in extended desktop mode (because in extended desktop mode, oneof the display devices 124(1) or 124(2) is to be driven by output fromthe DP port 112). Therefore, DRM protected content may be displayed ononly one of the display devices 124(1) or 124(2) in the extended desktopmode. Thus, in all three of the modes 144 (e.g., extended desktop mode,clone mode, or single display mode), the DRM protected content may bedisplayed on either the internal display device 124(1) or the additionaldisplay device 124(2) depending on which of the display devices 124(1)and 124(2) is visible to the user (e.g., based on the orientation of thecomputing device 102).

Typically, when viewing DRM protected content such as a movie ortelevision show, the computing device may be in a horizontal (e.g.,landscape) orientation. In any of the three display modes, if theinternal display device 124(1) is “up” in the horizontal orientation,then the first content 140(1) from the eDP port 110 may be sent to theoutput 116(1) for display on the internal display device 124(1). In anyof the three display modes, if the additional display device 124(2) is“up” in the horizontal orientation, then the first content 140(1) fromthe eDP port 110 may be sent to the output 116(2) for display on theadditional display device 124(2). In the horizontal mode, in theextended desktop mode, other applications or other content may bedisplayed by the display device that is “down”. In the horizontal mode,in the clone mode, the DRM protected content may be displayed on boththe display device that is “up” and the display device that is “down”(e.g., the content is duplicated on each of the two display devices). Inthe horizontal mode, in the single display mode, the DRM protectedcontent may be displayed on the display device that is “up” while nocontent may be displayed on the display device that is “down”.

In a tablet orientation (see FIGS. 3 and 4 for more details), in whichthe display device 124(1) is facing in an opposite direction from thedisplay device 124(2), the controller 126 may determine that aparticular display device of the display devices 124(1) or 124(2) isvisible to the user based on the data 136 (including data from the userinput 142). The controller 126 may send the instruction 128 to thecrossbar switch 114 to select a routing that sends the first content140(1) from the eDP port 110 to the particular display device that isvisible to the user. By routing the output of the eDP port 110 towhichever of the display devices 124(1) or 124(2) is visible to theuser, the display device is able to re-orient the content when thecomputing device 102 is rotated. In addition, DRM protected content maybe displayed in FHD by sending the output of the eDP port 110,regardless of which of the display devices 124(1) or 124(2) is “up”. Inthe tablet orientation, the output of the eDP port 110 may be sent tothe internal display device 124(1) when the internal display device124(1) is visible to the user and may be sent to the additional displaydevice 124(2) when the additional display device 124(2) is visible tothe user. The display device that is not visible to the user may either(i) be off (e.g., in the single display mode) or (ii) display the samecontent being displayed on the other display device (e.g., clone mode).

In a clamshell mode (see FIG. 4 for more details) in which one of thedisplay devices 124 is at the top and the other is at the bottom, thecontroller 126 may identify which of the display devices 124 is at thetop based on the data 136 received from one or more of the device driver130, the OS 132, the sensors 134, and the user input 142. In theclamshell mode, if the operating system 132 is in the extended displaymode, then if the internal display device 124(1) is on top, the outputof the eDP port 110 is routed to the internal display device 124(1) andthe output of the DP port 112 is routed to the additional display device124(2). If the additional display device 124(2) is on top, the output ofthe eDP port 110 is routed to the additional display device 124(2) andthe output of the DP port 112 is routed to the internal display device124(1). In the clamshell mode, if the operating system 132 is in theclone mode, then the output of the eDP port 110 is routed to both theinternal display device 124(1) and to the additional display device124(2). As previously discussed, DRM protected content is displayed onthe display device(s) to which the output of the eDP port 110 is routed(e.g., to the display device that is determined to be at the top insingle display mode or to both display devices in clone mode). DRMprotected content may not be displayed in FHD resolution in extendeddisplay mode because the output of the DP port 112 is encrypted and boththe internal display device 124(1) and the additional display device124(2) lack the circuitry to decrypt and display content in FHDresolution. If DRM protected content is played back while the OS 132 isin the extended desktop mode, the DRM protected content may be shown instandard definition (SD) resolution or may not be displayed at all,depending on the type of content and the DRM constraints.

In the extended desktop mode, DRM protected content may be displayed byrouting the content from the eDP port 110 to one of the display devices124(1) or 124(2). For example, playing a movie in “full screen” expandsthe movie to fill the particular display device that is connected to theeDP port 110. The OS 132 may, based on the DRM protection, prevent themovie from being displayed stretched across both the display devices124(1) and 124(2). Clone mode does not violate the DRM protectionbecause the first content 140(1) is sent from the eDP port 110 andduplicated on both of the display devices 124(1) and 124(2). In theextended desktop mode, unprotected content may be displayed stretchedacross both of the display devices 124(1) and 124(2) by sending half ofthe unprotected content from the eDP port 110 and a remaining half ofthe unprotected content from the DP port 112.

The GPU 104 may support three logical pipes (e.g., three video outputs).An advantage of using the crossbar switch 114 to drive both of thedisplay devices 124(1) and 124(2) is that a single output port (e.g.,the eDP port 110 or the DP port 112) of the GPU 104 is used. Forexample, by using a single logical pipe (e.g., a single output port) todrive both of the display devices 124(1) and 124(2) in clone mode forprotected/unprotected content or in extended desktop mode forunprotected content, the two remaining logical pipes may be used todrive one or two external displays (e.g., via the port 108). In clonemode, if the crossbar switch 114 was not present, then the GPU 104 woulduse two logical pipes (e.g., the eDP port 110 and the DP port 112) tosend the content to both the display devices 124(1) and 124(2), therebyleaving a single pipe to drive an external display (e.g., via the port108). In some implementations, the computing device 102 may include athird display device, with each of the three logical pipes of the GPU104 capable of driving each of the three display devices.

Table 1 summarizes the various possible routings and which port(s) areused based on (i) whether DRM content is being played back and (ii) thedisplay mode 144 of the operating system 132 has been selected. If thecontent does not have DRM protection in either single display mode orclone mode, then either of the eDP port 110 or the DP port 112 may beused. Though Table 1 does not include an entry, in some implementations,unprotected content may be routed from the DP port 112 to either of thedisplay devices 124(1) or 124(2) in single display mode or to both ofthe display devices 124(1) and 124(2) in clone mode. Because there is noadvantage to using the DP port 112 for unprotected content in singledisplay mode or clone mode and because the normal routing uses theoutput of the eDP port 110, if content does not have DRM protection inclone mode (or single display mode), then the output of the eDP port 110is routed both (or one) of the display devices 124(1) and 124(2).

As the examples in Table 1 illustrate, in the extended desktop mode, DRMprotected content is output in an unencrypted format from the eDP port110 and sent to either the internal display device 124(1) or theadditional display device 124(2) while unprotected content is outputfrom the DP port 112 and sent to the other display device. For example,if the output of the eDP port 110 is sent to the internal display device124(1) then the output of the DP port 112 is sent to the additionaldisplay device 124(2). If the output of the eDP port 110 is sent to theadditional display device 124(2) then the output of the eDP port 110 issent to the internal display device 124(1).

TABLE 1 DRM OS Display Mode Routing eDP Port Output DP Port Output YesSingle Display eDP Only Either Internal or Not Used Mode AdditionalDisplay Yes Clone Mode eDP Only Both Displays Not Used Yes ExtendedDesktop Normal or Swap One of the two The other of the two Mode displaysdisplays No Single Display eDP Only Either Internal or Not Used ModeAdditional Display No Clone Mode eDP Only or DP Both Display DevicesBoth Display Devices Only or Not Used or Not Used No Extended DesktopNormal or Swap Internal or Additional Internal or Additional ModeDisplay Device Display Device

Thus, the controller 126 may receive the data 136(1) to 136(N) from oneor more of the device driver 130, the operating system 132, or thesensors 134. The controller 126 may determine an orientation of thecomputing device 102 based on the data 136. Based on the orientation ofthe computing device 102, the controller 126 may rotate the contentbeing displayed between approximately 0 degrees and approximately 360degrees. For example, in some cases, the content may be rotated to theright (clockwise) or to the left (counter-clockwise) in 90 degreeincrements (e.g., 90 degrees, 180 degrees, or 270 degrees). Based on (a)the display mode 144 (e.g., single mode, clone mode, or extended desktopmode) of the OS 132, and (b) whether the content being displayed isprotected using DRM, the controller 126 may select a routing and sendthe instruction 128 to the crossbar switch 114 selecting the routing.The instruction 128 may cause the crossbar switch 114 to be configuredto perform the selected routing. In some cases, a user may provide theuser input 142 to modify (or override) the orientation determined by thecontroller 126, the routing determined by the controller 126, or both.If the orientation of the computing device 102 changes while the contentis being displayed, the controller 126 may receive new data 136,determine a new orientation, determine a new routing, and automaticallyinstruct the crossbar switch 114 to configure a new routing. Based onthe new orientation of the computing device 102, the controller 126 mayrotate the content being displayed between approximately 0 degrees andapproximately 360 degrees. For example, in some cases, the content maybe rotated to the right (clockwise) or to the left (counter-clockwise)in 90 degree increments (e.g., 90 degrees, 180 degrees, or 270 degrees).In some cases, the user input 142 may cause the controller 126 to “lock”a particular routing configuration, a particular orientation, or both,such that the controller 126 ignores any additional data received fromone or more of the device driver 130, the OS 132, or the sensors 134until the user input 142 causes the controller 126 to remove the “lock”.

FIG. 2 is a block diagram 200 illustrating different orientations of adual-screen device (e.g., the computing device 102 of FIG. 1) accordingto some embodiments. As previously noted in FIG. 1, the computing device102 may include at least two display devices, the internal displaydevice 124(1) and the additional display device 124(2). The computingdevice 102 may be displayed in a vertical (e.g., portrait) orientation202 or a horizontal (e.g., landscape) orientation 204. For example, inthe vertical orientation 202, the internal display device 124(1) may beon one side (e.g., the left side or the right side), the additionaldisplay device 124(2) may be on another side (e.g., the right side orthe left side), and a hinge 206 may join the internal display device124(1) to the additional display device 124(2). Additional examples ofthe vertical orientation 202 are illustrated in FIG. 3. In thehorizontal orientation 204, the internal display device 124(1) may belocated at the top (or the bottom) of the computing device 102 with thehinge 206 in the middle and the additional display device 124(2) at thebottom (or the top) of the computing device. Additional examples of thehorizontal orientation 204 are illustrated in FIG. 4.

FIG. 3 is a block diagram 300 illustrating modes of a dual-screen devicein a vertical orientation according to some embodiments. Examples of thevertical orientation 202 may include a book orientation 302 or avertical tablet orientation 304. For example, in a first bookorientation 302(1), the internal display device 124(1) may be on theleft and the additional display device 124(2) may be on the right.Alternately, in a second book orientation 302(2), the additional displaydevice 124(2) may be on the left and the internal display device 124(1)may be on the right.

In the vertical tablet orientation 304, the internal display device124(1) may be on the left and the additional display device 124(2) maybe on the right. In a first vertical tablet orientation 304(1), theinternal display device 124(1) may be facing a user and the additionaldisplay device 124(2) may be rotated approximately 360 degrees to faceaway from the user. In a second vertical tablet orientation 304(2), theadditional display device 124(2) may be facing the user while theinternal display device 124(1) may rotated approximately 360 degrees toface away from the user.

FIG. 4 is a block diagram 400 illustrating modes of a dual-screen devicein a horizontal orientation according to some embodiments. Examples ofthe horizontal orientation 204 may include a tent orientation 402, apresentation orientation 404, a horizontal tablet orientation 406, and aclamshell orientation 408.

In 402(1), the internal display device 124(1) may be at the top facingthe user while the additional display device 124(2) may be at the bottomfacing away from the user. In 402(2), the additional display device124(2) may be at the top facing the user and the internal display device124(1) may be at the bottom facing away from the user.

In 404(1), the internal display device 124(1) may be at the top facingthe user and the additional display device 124(2) may be at the bottomfacing down. In 404(2) the additional display device 124(2) may be atthe top facing the user and the internal display device 124(1) may be atthe bottom facing down.

In 406(1), the internal display device 124(1) may be at the top facingthe user and the additional display device 124(2) may be at the bottomfacing down (e.g., away from the user). In 406(2), the additionaldisplay device 124(2) may be at the top facing the user and the internaldisplay device 124(1) may be at the bottom facing down (e.g., away fromthe user).

In 408(1), the internal display device 124(1) may be at the top facingthe user and the additional display device 124(2) may be at the bottomfacing the user (e.g., in a position where traditionally, a keyboard islocated in a laptop). In 408(1), in some cases, a QWERTY-based keyboardmay be displayed on the additional display device 124(2) and used toreceive keyboard input. In 408(2), the additional display device 124(2)may be at the top facing the user and the internal display device 124(1)may be at the bottom facing the user (e.g., in a position wheretraditionally, a keyboard is located in a laptop). In 408(2), in somecases, a QWERTY-based keyboard may be displayed on the internal displaydevice 124(1) and used to receive keyboard input.

FIG. 5 is a block diagram 500 illustrating a dual-screen device in whichthe operating system is in a clone mode according to some embodiments.When the OS 132 is set to display content on the computing device 102 ofFIG. 1 in the clone mode, first content 502 may be displayed on theinternal display device 124(1) and also on the additional display device124(2).

FIG. 6 is a block diagram 600 illustrating a dual-screen device in whichthe operating system is in a single display mode according to someembodiments. When the OS 132 is set to display content on the computingdevice 102 of FIG. 1 in the single display mode, the first content 502may be displayed on either (but not both) of the internal display device124(1) or the additional display device 124(2). For example, the firstcontent 502 may be displayed on the internal display device 124(1) andthe additional display device 124(2) may not display any content (e.g.,blank or off), as illustrated in the top of FIG. 6, or the first content502 may be displayed on the additional display device 124(2) and theinternal display device 124(1) may not display any content (e.g., blankor off), as illustrated in the bottom of FIG. 6.

FIG. 7 is a block diagram 700 illustrating a dual-screen device in whichthe operating system is in an extended display mode according to someembodiments. When the OS 132 is set to display content on the computingdevice 102 of FIG. 1 in the extended display mode, some content, such asthe first content 502, may be displayed across both the internal displaydevice 124(1) and the additional display device 124(2). In some cases,additional content may be displayed on either the internal displaydevice 124(1) or the additional display device 124(2). For example,second content 702 may be displayed on the internal display device124(1) and third content 704 may be displayed on the additional displaydevice 124(2). Because the eDP port 110 is used to output DRM protectedcontent, protected content may be displayed (e.g., due to the DRMrestrictions) on one of the display devices 124(1) or 124(2) whereasunprotected content may be displayed on either or both of the displaydevices 124(1) or 124(2). For example, in FIG. 7, the first content 502may be unprotected content while either the second content 702 or thethird content 704 may be protected content.

In the flow diagrams of FIGS. 8 and 9, each block represents one or moreoperations that can be implemented in hardware, software, or acombination thereof. In the context of software, the blocks representcomputer-executable instructions that, when executed by one or moreprocessors, cause the processors to perform the recited operations.Generally, computer-executable instructions include routines, programs,objects, modules, components, data structures, and the like that performparticular functions or implement particular abstract data types. Theorder in which the blocks are described is not intended to be construedas a limitation, and any number of the described operations can becombined in any order and/or in parallel to implement the processes. Fordiscussion purposes, the processes 800 and 900 are described withreference to FIG. 1, 2, 3, 4, 5, 6, or 7 as described above, althoughother models, frameworks, systems and environments may be used toimplement these processes.

FIG. 8 is a flowchart of a process 800 that includes determining adisplay mode according to some embodiments. The process 800 may beperformed by a component of the computing device 102, such as, forexample, the controller 126 of FIG. 1.

At 802, a display mode associated with the operating system may bedetermined. For example, in FIG. 1, the controller 126 may determine thedisplay mode 144 associated with the OS 132. In some cases, the displaymode 144 may be one of (a) an extended display mode (e.g., unprotectedcontent may be displayed across both of the display devices 124(1) and124(2)), (b) a single display mode (e.g., content is displayed on onedisplay device while the other display device is off or blank), or (c) aclone mode (e.g., the same content is displayed on each of the displaydevices 124(1) and 124(2)).

At 804, a determination may be made as to whether content to bedisplayed includes digital rights management (DRM). For example, in FIG.1, the controller 126 may determine that the first content 140(1) is DRMprotected content and output the first content 140(1) from the eDP port110. The controller 126 may determine that the second content 140(2) isunprotected content and output the second content 140(2) from the DPport 112.

Based on the three possible display modes (determined at 802) andwhether or not the content includes DRM (determined at 804), there aresix possibilities, described in 806, 810, 814, 818, 822, and 826.

At 806, if extended desktop mode has been enabled and the contentincludes DRM protection, then at 808 the content is output from the eDPport and sent to one of the two display devices and additional contentis sent from the DP port output to the other of the two display devices.For example, in FIG. 1, in extended desktop mode, if the first content140(1) includes DRM, the first content 140(1) may be sent from the eDPport 110 to either the internal display device 124(1) or the additionaldisplay device 124(2) depending on an orientation of the computingdevice 102. The output of the DP port 112 may be sent to whicheverdisplay device is not being sent the signal from the eDP port 110. Toillustrate, in extended desktop mode, if the computing device 102 is inthe horizontal orientation 204 of FIG. 2 and the internal display device124(1) is facing the user, the output of the eDP port 110 may be routedto the internal display device 124(1) and the output of the DP port 112may be routed to the additional display device 124(2). In the extendeddisplay mode, unprotected content, such as Windows® desktop, may bedisplayed stretched across both of the displays 124(1) and 124(2) (e.g.,similar to the first content 502 in FIG. 7). A first portion of theunprotected content may be output from the eDP port 110 and a second(remaining) portion of the unprotected content may be output from the DPport 112. The process may then proceed to 830.

At 810, if clone mode has been enabled and the content includes DRMprotection, then at 812 the eDP port output is sent to both of the twodisplay devices (the DP port output is not used). For example, in FIG.1, in clone mode, if the first content 140(1) includes DRM, the firstcontent 140(1) may be sent from the eDP port 110 to both the internaldisplay device 124(1) and to the additional display device 124(2). Theprocess may then proceed to 830.

At 814, if single display mode has been enabled and the content includesDRM protection, then at 816 the eDP port output is sent to one of thetwo display devices (the DP port output is not used) and the otherdisplay is blank or off. For example, in FIG. 1, in single display mode,if the first content 140(1) includes DRM, the first content 140(1) maybe sent from the eDP port 110 to either the internal display device124(1) or the additional display device 124(2) depending on anorientation of the computing device 102 (e.g., depending on whichdisplay is viewable by the user). To illustrate, assume the computingdevice 102 is in the horizontal orientation 204 of FIG. 2. If theinternal display device 124(1) is facing the user, then the output ofthe eDP port 110 may be routed to the internal display device 124(1). Ifthe additional display device 124(2) is facing the user, then the outputof the eDP port 110 may be routed to the additional display device124(2). The process may then proceed to 830.

At 818, if extended desktop mode has been enabled and the content doesnot include DRM protection, then at 820 the eDP port output is sent toone of the two display devices and the DP port output is sent to theother of the two display devices. For example, in FIG. 1, in extendeddesktop mode, the first content 140(1) of the eDP port 110 may be sentto either the internal display device 124(1) or the additional displaydevice 124(2) depending on an orientation of the computing device 102.The output of the DP port 112 may be sent to whichever display device isnot being sent the signal from the eDP port 110. To illustrate, inextended desktop mode, if the computing device 102 is in the horizontalorientation 204 of FIG. 2 and the internal display device 124(1) isfacing the user, the output of the eDP port 110 may be routed to theinternal display device 124(1) and the output of the DP port 112 may berouted to the additional display device 124(2). If the first content140(1) is unprotected and being displayed stretched across both of thedisplay devices 124(1) and 124(2), a portion of the first content 140(1)may be output from the eDP port 110 to one of the display devices 124(1)or 124(2) and a remaining portion of the first content 140(1) may beoutput from the DP port 112 to the other of the display devices 124(2)or 124(1). The process may then proceed to 830.

At 822, if single display mode has been enabled and the content does notinclude DRM protection, then at 824 the eDP port output is sent to oneof the two display devices. For example, in FIG. 1, in extended desktopmode, the first content 140(1) may be sent from the eDP port 110 toeither the internal display device 124(1) or the additional displaydevice 124(2) depending on an orientation of the computing device 102.The output of the DP port 112 is not used. To illustrate, in singledisplay mode, if the computing device 102 is in the horizontalorientation 204 of FIG. 2 and the internal display device 124(1) isfacing the user, the output of the eDP port 110 may be routed to theinternal display device 124(1).

At 826, if clone mode has been enabled and the content is unprotected(e.g. does not include DRM protection), then at 828 the content isoutput from the eDP port and sent to both display devices. For example,in FIG. 1, in clone mode, unprotected content may be sent from the eDPport 110 to both the internal display device 124(1) and the additionaldisplay device 124(2). The process may then proceed to 830.

At 830, an orientation of the computing device may be determined. Forexample, in FIG. 1, the controller 126 may determine an orientation ofthe computing device 102 based on one or more of the data 136(1) to136(N). To illustrate, the controller 126 may determine whether thecomputing device 102 is in the vertical orientation 202 or thehorizontal orientation 204 of FIG. 2. If the computing device 102 is inthe vertical orientation 202, the controller 126 may determine whetherthe computing device 102 is in the book orientation 302 or the verticaltablet orientation 304 of FIG. 3. In the vertical orientation 202, thecontroller 126 may determine whether the internal computing device124(1) is on the left or on the right. Determining whether the internaldisplay device 124(1) is on the left or on the right also determineswhether the additional display device 124(2) is on the right or on theleft. If the computing device 102 is in the horizontal orientation 204,the controller 126 may determine whether the computing device 102 is inthe tent orientation 402, the presentation orientation 404, thehorizontal tablet orientation 406, or the clamshell orientation 408 andmay determine whether the internal computing device 124(1) is on the topor on the bottom. Determining whether the internal display device 124(1)is on the top or on the bottom also determines whether the additionaldisplay device 124(2) is on the bottom or on the top. Determining theorientation of the computing device 102 may also include taking intoaccount the user input 142. For example, a user may provide the userinput 142 to override the orientation determined by the controller 126.In some cases, the user input 142 may lock the orientation, the routing,or both such that the controller 126 ignores the data 136 provided byone or more of the device driver 130, the OS 132, and the sensors 134.The user may provide additional user input to remove the lock such thatthe controller 126 resumes determining the orientation of the computingdevice 102 based on the data 136 provided by one or more of the devicedriver 130, the OS 132, and the sensors 134.

At 832, based on (i) the display mode, (ii) whether the content includesDRM protection, and (iii) the orientation of the computing device, thecontroller 126 may select one of the four routings (e.g., normal, swap,eDP only, or DP only). For example, in FIG. 1, the normal routing sendsthe output of the eDP port 110 to the internal display device 124(1) andsends the output of the DP port 112 to the additional display device124(2). The swap routing sends the output of the DP port 112 to theinternal display device 124(1) and sends the output of the eDP port 110to the additional display device 124(2). The eDP only routing sends theoutput of the eDP port 110 to both of the display devices 124(1) and124(2). The DP only routing sends the output of the DP port 112 to bothof the display devices 124(1) and 124(2).

At 834, the output from at least one of the eDP port or the DP port maybe modified. For example, in FIG. 1, depending on the orientation of thecomputing device 102 and the user input 142, one or both of the firstcontent 140(1) or the second content 140(2) may be modified by rotatingeach of the first content 140(1). the second content 140(2), or bothbetween approximately 0 degrees and approximately 360 degrees. Forexample, in some cases, the content may be rotated to the right(clockwise) or to the left (counter-clockwise) in 90 degree increments(e.g., 90 degrees, 180 degrees, or 270 degrees). In some cases, a firstmodification may be applied to the first content 140(1) and a secondmodification may be applied to the second content 140(2). The firstmodification may be the same as the second modification or the firstmodification may be different from the second modification. For example,the first content 140(1) may be rotated approximately 90 degrees and thesecond content 140(2) may be rotated approximately 270 degrees.

At 836, the modified content may be output based on the routing. Forexample, in FIG. 1, the controller 126 may select one of the fourroutings (e.g., normal, swap, eDP only, or DP only), modify one or bothof the content 140(1) or 140(2), and route one or both of the modifiedcontent to one or both of the display devices 124(1) or 124(2) based onthe selected routing.

Thus, a controller may determine a display mode of an operating system,may determine if content being played back includes DRM protection, andmay determine an orientation of a computing device having two displaydevices. Based on the display mode, the orientation, and whether thecontent includes DRM protection, the controller may select a routingfrom one of multiple routings associated with a crossbar switch. Thecontroller may modify content being sent from an eDP port, a DP port, orboth to create modified content. The modified content may be routed bythe crossbar switch to one or both of the display devices according tothe selected routing. In some cases, a user may provide user input totemporarily keep (e.g., temporarily lock-in) a particular orientation, aparticular routing, or both. While the orientation and/or routing istemporarily locked, the controller may ignore the data provided by theOS, device driver, and sensors. When the user provides additional userinput to remove the lock, the controller may resume determining anorientation and selecting a routing of the crossbar switch based on thedata provided by the OS, device driver, and sensors.

FIG. 9 is a flowchart of a process 900 that includes determining whethervideo content is protected with a digital rights management (DRM) schemeaccording to some embodiments. The process 900 may be performed by oneor more components of the computing device 102 of FIG. 1, such as forexample, the controller 126.

At 902, a selection to display content (e.g., video content) may bereceived. For example, in FIG. 1, the computer device 102 may receive aselection from a user to display one or more of the first content 140(1)or the second content 140(2).

At 904, a determination may be made whether the content is protectedusing digital rights management (DRM), such as HDCP. For example, inFIG. 1, the controller 126 may determine whether the content 140(1) isprotected using a DRM scheme (e.g., HDCP) and whether the content 140(2)is protected using a DRM scheme.

At 906, a determination may be made as to a display mode associated withan internal display device and an additional display device. Forexample, in FIG. 1, the controller 126 may determine whether the mode144 is (1) a clone mode in which the additional display device 124(2) isconfigured to clone (e.g., duplicate) content being displayed on theinternal display device 124(1) (e.g., FIG. 5), (2) a single display modein which one of the display devices 124(1) or 124(2) is blank (or off)while the other of the display devices 124(1) or 124(2) displays content(e.g., FIG. 6), or (3) an extended display mode in which the additionaldisplay device 124(2) is configured as an extension of the internaldisplay device 124(1) to enable unprotected content to be displayedacross both of the display devices 124(1) and 124(2) (e.g., FIG. 5).

At 908, data from at least one of an operating system, a device driver,or one or more sensors may be received. For example, in FIG. 1, thecontroller 126 may receive the data 136 from one or more of the devicedriver 130, the operating system 132, and the sensors 134.

At 910, an orientation of the computing device may be determined. Forexample, the controller 126 may determine an orientation of thecomputing device 102 based on the data 136. In some cases, thecontroller 126 may determine an orientation of at least one of theinternal display devices 124(1) or the additional display device 124(2)based on the data 136. For example, the controller 126 may determinewhether the computing device 102 is in the vertical configuration 202 orthe horizontal configuration 204 of FIG. 2. The controller 126 maydetermine whether the internal display device 124(1) is in the leftposition (e.g., left location) or right position (e.g., right location)when the computing device 102 is in the vertical orientation 202. Thecontroller 126 may determine whether the internal display device 124(1)is at the top position or the bottom position when the computing device102 is in the horizontal orientation 204.

At 912, the content may be modified (e.g., based at least in part on theorientation) to create modified video content. For example, in FIG. 1,the controller 126 may modify at least one of the first content 140(1)or the second content 140(2) based on the orientation of the computingdevice 102. For example, at least one of the first content 140(1) or thesecond content 140(2) may be rotated between approximately zero degreesand approximately two hundred and seventy degrees.

At 914, a routing of the modified content (and any additional content tobe displayed) may be determined. For example, the modified content maybe routed to one or both of the internal display device 124(1) and theadditional display device 124(2). The controller 126 may determine therouting based on (1) an orientation of the computing device 102, (2)whether protected content is being displayed, and (3) the display modeassociated with the display devices 124(1) and 124(2).

At 916, the modified content (and any additional content) may be sent toat least one of the internal display device or the additional displaydevice based on the routing. For example, in FIG. 1, the controller 126may select a routing from one of four routings associated with thecrossbar switch 114. In a normal routing, the crossbar switch 114 mayroute the first content 140(1) from the eDP port 110 to the output116(1) for display on the internal display device 124(1) and may routethe second content 140(2) from the DP port 112 to the output 116(2) fordisplay on the additional display device 124(2). In a swap routing, thecrossbar switch 114 may route the first content 140(1) from the eDP port110 to the output 116(2) for display on the additional display device124(2) and may route the second content 140(2) from the DP port 112 tothe output 116(1) for display on the internal display device 124(2). Inan eDP only routing, the crossbar switch 114 may route the first content140(1) from the eDP port 110 to both the output 116(1) and 116(2) fordisplay on the internal display device 124(1) and the additional displaydevice 124(2). In a DP only routing, the crossbar switch 114 may routethe second content 140(2) from the DP port 112 to both the output 116(1)and the output 116(2) for display on the internal display device 124(1)and the additional display device 124(2).

At 918, at least one of the routing or the orientation may betemporarily locked based on user input. For example, in FIG. 1, the userinput 142 may cause the controller 126 to lock a current orientation anda current routing and temporarily disregard the data 136. At a laterpoint in time, the user may provide additional user input to remove thelock, after which the controller 126 may determine a current orientationof the computing device 102 based on the current data 136. Based on thecurrent orientation, the controller 126 may determine a new routing andinstruct the crossbar switch 114 to use the new routing. Based on thecurrent orientation, the controller 126 may rotate either or both of thecontent 140(1) and 140(2).

FIG. 10 illustrates an example configuration of the computing device 102of FIG. 1 that can be used to implement the systems and techniquesdescribed herein. The computing device 102 may include one or moreprocessors 1002 (e.g., the CPU 106 and the GPU 104 of FIG. 1), thememory 138, communication interfaces 1006, the display devices 124(1)and 124(2), other input/output (I/O) devices 1010, and one or more massstorage devices 1012, configured to communicate with each other, such asvia one or more system buses 1014 or other suitable connection. While asingle bus is illustrated for ease of understanding, it should beunderstood that the system buses 1014 may include multiple buses, suchas memory device buses, storage device buses, power buses, video signalbuses, and the like.

The processors 1002 are one or more hardware devices that may include asingle processing unit or a number of processing units, all of which mayinclude single or multiple computing units or multiple cores. Theprocessors 1002 may include an integrated GPU or the GPU a separateprocessor device. The processors 1002 may be implemented as one or moremicroprocessors, microcomputers, microcontrollers, digital signalprocessors, central processing units, graphics processing units, statemachines, logic circuitries, and/or any devices that manipulate signalsbased on operational instructions. Among other capabilities, theprocessors 1002 may be configured to fetch and execute computer-readableinstructions stored in the memory 138, mass storage devices 1012, orother computer-readable media.

Memory 138 and mass storage devices 1012 are examples of non-transitorycomputer media (e.g., memory storage devices) for storing instructionsthat can be executed by the processors 1002 to perform the variousfunctions described herein. For example, memory 138 may include bothvolatile memory and non-volatile memory (e.g., RAM, ROM, or the like)devices. Further, mass storage devices 1012 may include hard diskdrives, solid-state drives, removable media, including external andremovable drives, memory cards, flash memory, floppy disks, opticaldisks (e.g., CD, DVD), a storage array, a network attached storage, astorage area network, or the like. Both memory 138 and mass storagedevices 1012 may be collectively referred to as memory or computerstorage media herein, and may be a media capable of storingcomputer-readable, processor-executable program instructions as computerprogram code that can be executed by the processor 1002 as a particularmachine configured for carrying out the operations and functionsdescribed in the implementations herein.

The computing device 102 may also include one or more communicationinterfaces 1006 for exchanging data via a network. The communicationinterfaces 1006 can facilitate communications within a wide variety ofnetworks and protocol types, including wired networks (e.g., Ethernet,DOCSIS, DSL, Fiber, USB etc.) and wireless networks (e.g., WLAN, GSM,CDMA, 802.11, Bluetooth, Wireless USB, cellular, satellite, etc.), theInternet and the like. Communication interfaces 1006 can also providecommunication with external storage (not shown), such as in a storagearray, network attached storage, storage area network, or the like. Thedisplay devices 124(1) and 124(2) may be connected to each other using ahinge (e.g., the hinge 206 of FIG. 2) that enables each display deviceto rotate relative to the other display device. The display devices 124may be used for displaying information and images to users. Other I/Odevices 1010 may be devices that receive various inputs from a user andprovide various outputs to the user, and may include a keyboard, aremote controller, a mouse, a printer, audio input/output devices, andso forth.

The computer storage media, such as memory 138 and mass storage devices1012, may be used to store software and data. For example, the computerstorage media may be used to store the operating system 132, the devicedriver 130, and the data 136(1) to 136(N). The operating system 132 maybe set to a particular display mode 1016. For example, the operatingsystem 132 may have a default display mode and a user may set thedisplay mode 1016 to something different than the default display mode.The display mode 1016 may be one of (1) an extended display mode (e.g.,see FIG. 7), (2) a single display mode (e.g., see FIG. 6), or (3) aclone mode (e.g., see FIG. 5). The computer storage media may store anorientation 1018, one or more software applications 1020, content 1022,modified content 1026, and other content 1028. The controller 126 maydetermine the orientation 1018 of the computing device 102 based on thedata 136(1) to 136(N) provided by one or more of the operating system132, the device driver 130, or the sensors 134. The softwareapplications 1020 (e.g., the content 140(1) or 140(2) of FIG. 1) mayinclude a word processing application, a spreadsheet application, andthe like. The content 1022 may be audio content, video content,streaming content, or another type of content. In some cases, thecontent 1022 may include DRM 1024 while in other cases the content 1022may be unprotected (e.g., no DRM protection). The modified content 1026may be created by rotating the content 1022 between approximately 0degrees and approximately 360 degrees. For example, in some cases, thecontent may be rotated to the right (clockwise) or to the left(counter-clockwise) in 90 degree increments (e.g., 90 degrees, 180degrees, or 270 degrees). The amount of rotation may be based on theorientation 1028 of the computing device 102.

The controller 126 may determine the display mode 1016 of the OS 132,may determine if the content 1022 to be displayed includes DRM 1024, andmay determine the orientation 1018 of the computing device 102 havingthe two display devices 124(1) and 124(2). Based on the display mode1016, the orientation 1018, and whether the content 1022 includes theDRM 1024, the controller 126 may select a routing 1030 from one of themultiple routings (e.g., normal, swap, eDP only, or DP only) associatedwith the crossbar switch 114. The controller 126 may modify the content1022 to create the modified content 1026. The modified content 1026 maybe routed by the crossbar switch 114 to one or both of the displaydevices 124(1) and 124(2) according to the selected routing 1030. Insome cases, a user may provide user input to temporarily keep (e.g.,temporarily lock-in) a particular orientation, a particular routing, orboth. While the orientation and/or routing is temporarily locked, thecontroller may ignore the data provided by the OS, device driver, andsensors. When the user provides additional user input to remove thelock, the controller may resume determining an orientation and selectinga new routing of the crossbar switch 114 based on the data 136 providedby one or more of the OS 132, the device driver 130, and the sensors134.

The example systems and computing devices described herein are merelyexamples suitable for some implementations and are not intended tosuggest any limitation as to the scope of use or functionality of theenvironments, architectures and frameworks that can implement theprocesses, components and features described herein. Thus,implementations herein are operational with numerous environments orarchitectures, and may be implemented in general purpose andspecial-purpose computing systems, or other devices having processingcapability. Generally, any of the functions described with reference tothe figures can be implemented using software, hardware (e.g., fixedlogic circuitry) or a combination of these implementations. The term“module,” “mechanism” or “component” as used herein generally representssoftware, hardware, or a combination of software and hardware that canbe configured to implement prescribed functions. For instance, in thecase of a software implementation, the term “module,” “mechanism” or“component” can represent program code (and/or declarative-typeinstructions) that performs specified tasks or operations when executedon a processing device or devices (e.g., CPUs or processors). Theprogram code can be stored in one or more computer-readable memorydevices or other computer storage devices. Thus, the processes,components and modules described herein may be implemented by a computerprogram product.

Furthermore, this disclosure provides various example implementations,as described and as illustrated in the drawings. However, thisdisclosure is not limited to the implementations described andillustrated herein, but can extend to other implementations, as would beknown or as would become known to those skilled in the art. Reference inthe specification to “one implementation,” “this implementation,” “theseimplementations” or “some implementations” means that a particularfeature, structure, or characteristic described is included in at leastone implementation, and the appearances of these phrases in variousplaces in the specification are not necessarily all referring to thesame implementation.

Although the present invention has been described in connection withseveral embodiments, the invention is not intended to be limited to thespecific forms set forth herein. On the contrary, it is intended tocover such alternatives, modifications, and equivalents as can bereasonably included within the scope of the invention as defined by theappended claims.

What is claimed is:
 1. A method comprising: receiving, by a computingdevice comprising a first display device and a second display device, aninstruction to display protected content; determining, by the computingdevice, a routing based at least in part on: an orientation of thecomputing device; and a display mode of the computing device;instructing, by the computing device, a crossbar switch to select therouting from a plurality of routings; and sending, by the computingdevice, the protected content in an unencrypted format to at least oneof the first display device or the second display device based at leastin part on the routing.
 2. The method of claim 1, further comprising:determining that the display mode of the computing device comprises anextended display mode wherein the second display device is configured asan extension of the first display device; receiving a second selectionto display second content; determining that the display mode has beenchanged from the extended display mode to a clone mode wherein thesecond display device is configured as a clone of the first displaydevice; determining a second orientation of the first display device;modifying the second content based at least in part on the secondorientation to create second modified content; determining a secondrouting of the second modified content; and sending, based on the secondrouting, the second modified content in the unencrypted format to boththe first display device and the second display device.
 3. The method ofclaim 1, further comprising: receiving a third selection to displaythird content; determining that the display mode comprises a singledisplay mode wherein one of the first display device or the seconddisplay device is used; determining a third orientation of the computingdevice; modifying the third content based at least in part on the thirdorientation to create third modified content; determining, based atleast in part on the third orientation, a third routing of the thirdmodified content; and sending, based on the third routing, the thirdmodified content in the unencrypted format to one of the first displaydevice or the second display device.
 4. The method of claim 1, furthercomprising: displaying unprotected content across both the first displaydevice and the second display device by: sending a portion of theunprotected content from an embedded DisplayPort port of the computingdevice; and sending a remaining portion of the unprotected content froma DisplayPort port of the computing device.
 5. The method of claim 1,further comprising: displaying unprotected content across both the firstdisplay device and the second display device.
 6. The method of claim 1,wherein sending the protected content in the unencrypted format toeither the first display device or to the second display device based atleast in part on the routing comprises: modifying the protected contentbased at least in part on the orientation of the computing device tocreate modified content; and sending the modified content in theunencrypted format to either the first display device or to the seconddisplay device.
 7. The method of claim 1, wherein: a DisplayPort (DP)port of the computing device outputs a portion of unprotected content;and an embedded DisplayPort (eDP) of the computing device outputs: aremaining portion of the unprotected content; and the protected contentin the unencrypted format.
 8. A computing device comprising: a firstdisplay device; a second display device; a crossbar switch; one or moreprocessors; one or more non-transitory computer readable media storinginstructions executable by the one or more processors to performoperations comprising: receiving a selection to display protectedcontent; determining, from a plurality of routings associated with acrossbar switch, a routing of the protected content based at least inpart on: an orientation of the computing device; and a display mode ofthe computing device; and sending, via the routing associated with thecrossbar switch, the protected content in an unencrypted format toeither the first display device or the second display device.
 9. Thecomputing device of claim 8, wherein the orientation comprises one of abook orientation, a vertical tablet orientation, a tent orientation, apresentation orientation, a horizontal tablet orientation, or aclamshell orientation.
 10. The computing device of claim 8, wherein theoperations further comprise: determining a location of the first displaydevice relative to the second display device, wherein the locationcomprises one of a left location, a right location, a top location, or abottom location.
 11. The computing device of claim 8, furthercomprising: displaying unprotected content across both the first displaydevice and the second display device by: sending a portion of theunprotected content from an embedded DisplayPort port of the computingdevice; and sending a remaining portion of the unprotected content froma DisplayPort port of the computing device.
 12. The computing device ofclaim 8, wherein the operations further comprise: receiving data from atleast one of an accelerometer, a gyroscope, a magnetometer, a magneticcompass, a proximity sensor, a camera, an operating system, or a devicedriver of the computing device; and determining the orientation of thecomputing device based at least in part on the data.
 13. The computingdevice of claim 8, further comprising: a DisplayPort (DP) port to outputat least a portion of unprotected content; and an embedded DisplayPort(eDP) port to output: the protected content in the unencrypted format;and a remaining portion of the unprotected content.
 14. One or morenon-transitory computer-readable media storing instructions that areexecutable by one or more processors to perform operations comprising:receiving a selection to play protected content on a computing devicecomprising a first display device and a second display device;determining a routing of the protected content based at least in parton: an orientation of the computing device; and a display mode of thecomputing device; selecting the routing from a plurality of routingsassociated with a crossbar switch; and sending, based on the routing,the protected content in an unencrypted format to at least one of thefirst display device or the second display device.
 15. The one or morenon-transitory computer-readable media of claim 14, wherein: aDisplayPort (DP) port of the computing device outputs a portion ofunprotected content; and an embedded DisplayPort (eDP) of the computingdevice outputs: a remaining portion of the unprotected content; and theprotected content in the unencrypted format.
 16. The one or morenon-transitory computer-readable media of claim 14, wherein theoperations further comprise: modifying the protected content based atleast in part on the orientation of the computing device to createmodified content; and sending the modified content in the unencryptedformat to either the first display device or the second display device.17. The one or more non-transitory computer-readable media of claim 16,wherein modifying the protected content comprises rotating, based atleast in part on the orientation of the computing device, the protectedcontent between approximately zero degrees and approximately two hundredand seventy degrees.
 18. The one or more non-transitorycomputer-readable media of claim 14, the operations further comprising:receiving first user input; and locking at least one of the routing orthe orientation based on the first user input.
 19. The one or morenon-transitory computer-readable media of claim 18, the operationsfurther comprising: receiving second user input; and unlocking therouting and the orientation based on the second user input.
 20. The oneor more non-transitory computer-readable media of claim 14, wherein theoperation further comprise displaying unprotected content across boththe first display device and the second display device.